package com.casic.ops.service.api.pipeline;

import com.casic.ops.entity.domain.pipeline.PipelineLoggerDO;
import com.casic.ops.entity.dto.pipeline.PipelineLoggerDTO;
import com.casic.ops.entity.request.pipeline.PipelineLoggerPageRequest;
import com.casic.ops.entity.request.pipeline.PipelineLoggerRequest;
import com.casic.ops.entity.vo.pipeline.PipelineStaticsChartVO;
import com.casic.ops.entity.vo.pipeline.PipelineStaticsMetricsWrapperVO;
import com.casic.ops.entity.vo.pipeline.PipelineStatisticsViewVO;
import com.casic.ops.entity.vo.pipeline.response.MultiResponse;
import com.casic.ops.entity.vo.pipeline.response.PageResponse;
import com.casic.ops.entity.vo.pipeline.response.Response;
import com.casic.ops.entity.vo.pipeline.response.SingleResponse;

import java.util.List;

/**
 * 流水线执行记录服务
 * @author cww
 * @date 2022/6/17
 */
public interface PipelineLoggerService {
    void add(PipelineLoggerDO loggerDO);
    Response update(PipelineLoggerRequest pipelineLoggerRequest);
    Response delete(Long[]ids);
    Response deleteOne(long id);
    SingleResponse<PipelineLoggerDTO> getById(long id);
    MultiResponse<PipelineLoggerDTO> list(String pipelineUuid);
    PageResponse<PipelineLoggerDTO> page(PipelineLoggerPageRequest request);
    void updateByLoggerDO(PipelineLoggerDO logger);
    Response pipelineLoggerStatisticView(String pipelineUuid);
    SingleResponse<PipelineStaticsMetricsWrapperVO> pipelineLoggerStatisticMetrics(String pipelineUuid);
    SingleResponse<List<PipelineStaticsChartVO>> pipelineLoggerStatisticChart(String pipelineUuid);
    Response getRecentlyHistory();
}
